package com.qf.face.util;

import com.baidu.aip.face.AipFace;
import com.baidu.aip.face.MatchRequest;
import org.json.JSONObject;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.util.ArrayList;

/**
 * 集成百度的人脸服务
 * @version v1.0.0
 * @Description:
 * @author: 姜红凯
 * @date: 2022.04.12
 * @since 1.0
 */
@Component
public class BaiDuUtil {
    /**
     * 人脸识别的远程调用方式
     * 使用：http方式，百度推出了封装http的工具类。
     * 我们可以直接调用。
     * 另外，之前的一些老系统，系统对接不是用http
     * 而是用WebService。参照我的博客。
     */

    @Resource
    private AipFace client;


    /**
     * 人脸对比
     */
    public double isOne(String image1,String image2){
        MatchRequest req1=new MatchRequest(image1,"BASE64");
        MatchRequest req2=new MatchRequest(image2,"BASE64");
        ArrayList<MatchRequest> requests=new ArrayList<>();
        requests.add(req1);
        requests.add(req2);
        JSONObject res=client.match(requests);
        //这个JSONObject的toString方法参数为2时，将会转化为json字符串
        //System.out.println(res.toString(2));
        if(res.getInt("error_code")==0){
            double sc = res.getJSONObject("result").getDouble("score");
            return sc;
        }else{
            return -1;
        }

    }

}

